69 research outputs found
Session Types with Runtime Adaptation: Overview and Examples
In recent work, we have developed a session types discipline for a calculus
that features the usual constructs for session establishment and communication,
but also two novel constructs that enable communicating processes to be
stopped, duplicated, or discarded at runtime. The aim is to understand whether
known techniques for the static analysis of structured communications scale up
to the challenging context of context-aware, adaptable distributed systems, in
which disciplined interaction and runtime adaptation are intertwined concerns.
In this short note, we summarize the main features of our session-typed
framework with runtime adaptation, and recall its basic correctness properties.
We illustrate our framework by means of examples. In particular, we present a
session representation of supervision trees, a mechanism for enforcing
fault-tolerant applications in the Erlang language.Comment: In Proceedings PLACES 2013, arXiv:1312.221
On the Expressive Power of Multiple Heads in CHR
Constraint Handling Rules (CHR) is a committed-choice declarative language
which has been originally designed for writing constraint solvers and which is
nowadays a general purpose language. CHR programs consist of multi-headed
guarded rules which allow to rewrite constraints into simpler ones until a
solved form is reached. Many empirical evidences suggest that multiple heads
augment the expressive power of the language, however no formal result in this
direction has been proved, so far.
In the first part of this paper we analyze the Turing completeness of CHR
with respect to the underneath constraint theory. We prove that if the
constraint theory is powerful enough then restricting to single head rules does
not affect the Turing completeness of the language. On the other hand,
differently from the case of the multi-headed language, the single head CHR
language is not Turing powerful when the underlying signature (for the
constraint theory) does not contain function symbols.
In the second part we prove that, no matter which constraint theory is
considered, under some reasonable assumptions it is not possible to encode the
CHR language (with multi-headed rules) into a single headed language while
preserving the semantics of the programs. We also show that, under some
stronger assumptions, considering an increasing number of atoms in the head of
a rule augments the expressive power of the language.
These results provide a formal proof for the claim that multiple heads
augment the expressive power of the CHR language.Comment: v.6 Minor changes, new formulation of definitions, changed some
details in the proof
Hunting Distributed Malware with the k-Calculus
The defense of computer systems from malicious software attacks, such as viruses and worms, is a key aspect of computer security. The analogy between malicious software and biological infections suggested us to use the k-calculus, a formalism originally developed for the analysis of biological systems, for the formalization and analysis of malicious software. By modeling the different actors involved in a malicious code attack in the k-calculus and by simulating their behavior, it is possible to extract important information that can drive in the choice of the defense technique to apply
Adaptable processes
We propose the concept of adaptable processes as a way of overcoming the
limitations that process calculi have for describing patterns of dynamic
process evolution. Such patterns rely on direct ways of controlling the
behavior and location of running processes, and so they are at the heart of the
adaptation capabilities present in many modern concurrent systems. Adaptable
processes have a location and are sensible to actions of dynamic update at
runtime; this allows to express a wide range of evolvability patterns for
concurrent processes. We introduce a core calculus of adaptable processes and
propose two verification problems for them: bounded and eventual adaptation.
While the former ensures that the number of consecutive erroneous states that
can be traversed during a computation is bound by some given number k, the
latter ensures that if the system enters into a state with errors then a state
without errors will be eventually reached. We study the (un)decidability of
these two problems in several variants of the calculus, which result from
considering dynamic and static topologies of adaptable processes as well as
different evolvability patterns. Rather than a specification language, our
calculus intends to be a basis for investigating the fundamental properties of
evolvable processes and for developing richer languages with evolvability
capabilities
Complexity of Membership and Non-Emptiness Problems in Unbounded Memory Automata
We study the complexity relationship between three models of unbounded memory automata: nu-automata (?-A), Layered Memory Automata (LaMA)and History-Register Automata (HRA). These are all extensions of finite state automata with unbounded memory over infinite alphabets. We prove that the membership problem is NP-complete for all of them, while they fall into different classes for what concerns non-emptiness. The problem of non-emptiness is known to be Ackermann-complete for HRA, we prove that it is PSPACE-complete for ?-A
Expressiveness of Recursion, Replication and Scope Mechanisms in Process Calculi
International audienceIn this paper we shall survey and discuss in detail the work on the relative expressiveness of recursion and replication in various process calculi. Namely, CCS, the pi-calculus, the Ambient calculus, Concurrent Constraint Programming and calculi for Cryptographic Protocols. We shall give evidence that the ability of expressing recursive behaviour via replication often depends on the scoping mechanisms of the given calculus which compensate for the restriction of replication
Sessions multi-parties réactives
Ensuring that communication-centric systems interact according to an intended protocol is an important but difficult problem, particularly for systems with some reactive or timed components. To rise to this challenge, we study the integration of session-based concurrency and Synchronous Reactive Programming (SRP). We propose a process calculus for multiparty sessions enriched with features from SRP. In this calculus, protocol participants may broadcast messages, suspend themselves while waiting for a message, and also react to events. Our main contribution is a session type system for this calculus, which enforces session correctness in terms of communication safety and protocol fidelity, and ensures two time-related properties that we call output persistence and input timeliness. Our type system departs significantly from existing ones, specifically as it captures the notion of logical instant typical of SRP.Assurer que les systèmes centrés sur la communication interagissent en accord avec un protocole donné est un problème important et difficile à résoudre, en particulier lorsque certains composants de ces systèmes sont réactifs ou temporisés. Pour relever ce défi, nous étudions l’intégration de primitives de la programmation réactive synchrone (PRS) dans les calculs de sessions. Nous proposons un calcul de sessions multi-parties enrichi avec des fonctionnalités typiques de la PRS. Dans ce calcul, les participants d’une session peuvent diffuser des messages, se suspendre dans l’attente de messages, et également réagir à des événements. Notre contribution principale est un système de types pour ce calcul, qui garantit deux propriétés classiques des calculs de sessions : l’absence d’erreurs de communication et la conformité au protocole. De plus, ce système de types assure deux propriétés liées au temps, que nous appelons “persistance des outputs” et “gestion sans latence des inputs”. Notre système de types se démarque de façon significative des systèmes de types de session existants, en particulier en ce qu’il rend compte de la notion d’instant logique qui est caractéristique de la PRS
- …